package com.sky.common.config;

/**
 * 缓存的key和常量
 */
public interface CacheConstants {


	/**
	 * 用户信息缓存
	 */
	String USER_DETAILS = "user_details";

	/**
	 * 追踪服务容器名前缀
	 */
	String TRACK_CONTAINER_NAME_PREFIX = "track_";

	/**
	 * 直播流转推服务名前缀
	 */
	String STREAM_CONTAINER_NAME_PREFIX = "stream_";


	/**
	 * ai直播流转推服务名前缀
	 */
	String AI_STREAM_CONTAINER_NAME_PREFIX="ai_stream_";

	/**
	 * 监控服务容器名前缀
	 */
	String MONITOR_CONTAINER_NAME = "sky_monitor";


	/**
	 * 发布默认qos
	 */
	int DEFAULT_QOS = 2;

	/**
	 * 订阅凌云mqtt主题默认qos
	 */
	int CMCC_SUBSCRIBE_QOS = 2;

	/**
	 * 订阅本地mqtt主题默认qos
	 */
	int LOCAL_SUBSCRIBE_QOS = 2;

	/**
	 * 服务器最低空闲核数
	 */
	int IDLE_CPU_PHYSICAL_CORE_MIN = 2;

	/**
	 * 最低内存
	 */
	int MIN_REQUIRE_MEMORY_MB =  2000;

	/**
	 * 最低显存
	 */
	int MIN_REQUIRE_GPU_MEMORY_MB = 2000;

	/**
	 * 最低硬盘空间
	 */
	int MIN_REQUIRED_DISK_SPACE_MB = 1000;

	/**
	 * 设备心跳超时时间,单位秒
	 */
	int CAMERA_HEARTBEAT_TIMEOUT_SECOND = 30;

	/**
	 * 节点心跳超时时间,单位秒
	 */
	int NODE_HEARTBEAT_TIMEOUT_SECOND = 60;

	/**
	 * 检测期望值
	 */
	double DETECT_CONFIDENCE = 0.2;


	/**
	 * 跟踪丢失阈值,单位秒
	 */
	int TRACKING_LOSS_THRESHOLD_SECONDS = 15;


	/**
	 * 不活跃最长时间,单位秒,超过此时间自动结束任务
	 */
	int INACTIVE_SECOND_MAX = 21600;
	

	/**
	 * oe过期时间
	 */
	int EXPIRE_OE_TIME_SECOND = 5;

	/**
	 * 水平角速度与垂直角速度的比值, 水平角速度/垂直角速度
	 */
	double HORIZONTAL_VERTICAL_RATIO = 1.6;


	/**
	 * ptd控制模式默认端口
	 */
	int DEFAULT_PTD_PORT = 8089;


	/**
	 * 下发topic前缀
	 */
	String DISPATCHER_TOPIC_PREFIX = "iot-dispatcher/cmlc/edge/";


	/**
	 * codeStatus成功
	 */
	int CODE_STATUS_OK = 200;

	/**
	 * codeStatus失败
	 */
	int CODE_STATUS_ERROR = 400;

	/**
	 * 提前量,单位秒
	 */
	int UAV_TRACKING_LEAD_SECOND = 4;


	/**
	 * 空闲状态
	 */
	int  IDLE_WORK_STATE = 0;

	/**
	 * 引导工作状态
	 */
	int BEGIN_TRACKING_WORK_STATE = 1;

	/**
	 *  自主跟踪
	 */
	int PROACTIVE_WORK_STATE =2;

	/**
	 * 警报最小时长限制,单位:秒
	 */
	int ALARM_MIN_DURATION_SECOND = 3;

	/**
	 * 超过此时间没有追踪信息，表示此次警报结束,单位秒
	 */
	int ALARM_INTERRUPT_SECOND = 10;



}
